home *** CD-ROM | disk | FTP | other *** search
-
- regc(0, "COMBINED_XFORM")
- regc(4, "MODEL_XFORM")
-
- regc(12, "FOG_PARAMS")
- regc(13, "CAMERA_POS_MS")
-
- regc(14, "TEXTURE1_XFORM")
- regc(18, "TEXTURE2_XFORM")
-
-
- vshader("
-
- #define point v0
- #define normal v1
- #define tangent v2
- #define tcoord v3
-
- #define fogp c12
- #define camp c13
-
- vs_1_1
-
- #include <cardef.h>
- #include <fog.inc>
-
- dcl_position point
- dcl_normal normal
- dcl_tangent tangent
- dcl_texcoord tcoord
-
- def c24, 1, 0, 0, GLASSFRESNELSCALE
-
-
- ; output position
- m4x4 oPos, point, c0
-
- sub r0, camp, point
- ; fresnel
- dp3 r6.w, r0, r0
- rsq r6.w, r6.w
- mul r6.xyz, r0, r6.w
-
- dp3 r6.w, r6, normal
- mad r6.w, r6.w, -r6.w, c24.x // -dot(E, N)*dot(E, N)+1 = 1- pow(dot(E, N),2)
- mul r6.w, r6.w, r6.w //f^2
- ; output fresnel
- mul oD0, r6.w, c24.w
-
- dp3 r1.w, r0, normal
- add r1.w, r1.w, r1.w
- mad r0, r1.w, normal, -r0
-
- m3x3 oT1, -normal, c14
- m3x3 oT2, -r0, c18
-
- ; output texcoords
- mov oT0, tcoord // color
- mov oT3, tcoord // broken
- ; calc fog
- dp4 r0.x, point, c2
- FOG(r0.x, fogp, r10)
- ")
-
-